package com.fengchao.api.dao.bci;

import com.fengchao.api.dao.BaseMapper;
import com.fengchao.model.bci.BciArtistInfo;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface BciArtistInfoMapper extends BaseMapper<BciArtistInfo> {
    /**
     * 根据 namePy模糊 isDelete status 分页查询
     *
     * @return
     */
    List<BciArtistInfo> findArtistByNamePyAndIsDeletedAndStatusAndPage(@Param("namePy") String namePy, @Param("isDelete") boolean isDelete, @Param("status") String status, @Param("start") Integer start, @Param("count") Integer count);

    /**
     * 根据 namePy模糊 isDelete status 总条数
     *
     * @return
     */
    Integer findArtistByNamePyAndIsDeletedAndStatusAndPageTotal(@Param("namePy") String namePy, @Param("isDelete") boolean isDelete, @Param("status") String status);

    /**
     * 根据歌曲id查选艺人
     *
     * @param songId
     * @return
     */
    List<Map<String, String>> findArtistBySongId(Integer songId);


    /**
     * 根据众筹id查询关联的艺人
     *
     * @param crowdfundingId
     * @return
     */
    List<BciArtistInfo> findArtistByCrowdfundingId(Integer crowdfundingId);

    /**
     * 根据userID查询 关注的艺人列表
     *
     * @param userId
     * @return
     */
    List<Map<String, Object>> findArtistByFocusUserId(@Param("userId") Integer userId, @Param("start") Integer start, @Param("count") Integer count);

    /**
     * 根据userid查询艺人信息
     *
     * @return
     */
    BciArtistInfo findArtistByUserId(Integer userId);

    /**
     * 根据name模糊查询 中文 英文 拼音
     *
     * @param name
     * @return
     */
    List<BciArtistInfo> findArtistByLikeName(@Param("name") String name, @Param("start") Integer start, @Param("count") Integer count);


    /**
     * 获取所有的推荐的艺人 isRecommended为1
     *
     * @param start
     * @param count
     * @return
     */
    List<BciArtistInfo> findArtistByRecommended(@Param("start") Integer start, @Param("count") Integer count);

    /**
     * 获取所有的签约的艺人 isSigned 为1
     *
     * @param start
     * @param count
     * @return
     */
    List<BciArtistInfo> findArtistBySigned(@Param("start") Integer start, @Param("count") Integer count);


}